1 package org.smartcomps.twister.util.user; 2 3 import junit.framework.TestCase; 4 import net.sf.hibernate.cfg.Configuration; 5 import net.sf.hibernate.tool.hbm2ddl.SchemaExport; 6 import org.smartcomps.twister.common.lifecycle.LifecycleManager; 7 import org.smartcomps.twister.common.persistence.CreationException; 8 import org.smartcomps.twister.common.transaction.TransactionManager; 9 import org.smartcomps.twister.util.user.priv.UserImpl; 10 import org.smartcomps.twister.util.user.priv.RoleImpl; 11 import org.smartcomps.twister.util.user.priv.dao.UserDAO; 12 13 import java.util.Collection; 14 import java.util.HashSet; 15 import java.util.Iterator; 16 17 18 public class TestUser extends TestCase { 19 20 TwisterUser twisterUser = null; 21 22 private Role adminRole = null; 23 private Role developerRole = null; 24 private Role managerRole = null; 25 26 protected void setUp() throws Exception { 27 LifecycleManager.getLifecycleManager().createResources(); 28 LifecycleManager.getLifecycleManager().startResources(); 29 30 SchemaExport schemaExport = new SchemaExport(new Configuration().configure()); 31 schemaExport.create(true, true); 32 33 TransactionManager.beginTransaction(); 34 twisterUser = TwisterUserFactory.getTwisterUser(); 35 } 36 37 protected void tearDown() throws Exception { 38 TransactionManager.commitTransaction(); 39 40 LifecycleManager.getLifecycleManager().stopResources(); 41 LifecycleManager.getLifecycleManager().destroyResources(); 42 twisterUser = null; 43 adminRole = null; 44 developerRole = null; 45 managerRole = null; 46 } 47 48 private Role createAdminRole(User user) throws Exception { 49 if (adminRole == null) { 50 Role res = new Role(); 51 res.setRolename("admin"); 52 res.setUser(user); 53 adminRole = res; 54 } 55 return adminRole; 56 } 57 58 private Role createManagerRole(User user) throws Exception { 59 if (managerRole == null) { 60 Role res = new Role(); 61 res.setRolename("manager"); 62 res.setUser(user); 63 managerRole = res; 64 } 65 return managerRole; 66 } 67 68 private Role createDeveloperRole(User user) throws Exception { 69 if (developerRole == null) { 70 Role res = new Role(); 71 res.setRolename("developer"); 72 res.setUser(user); 73 developerRole = res; 74 } 75 return developerRole; 76 } 77 78 public void testAB() throws Exception { 79 80 UserImpl user = new UserImpl(); 81 user.setUsername("fred"); 82 user.setPassword("password"); 83 84 RoleImpl roleAdmin = new RoleImpl(); 85 roleAdmin.setUser(user); 86 roleAdmin.setRolename("admin"); 87 88 RoleImpl roleManager = new RoleImpl(); 89 roleManager.setUser(user); 90 roleManager.setRolename("manager"); 91 92 HashSet roles = new HashSet(); 93 roles.add(roleAdmin); 94 roles.add(roleManager); 95 user.setRoles(roles); 96 UserDAO.create(user); 97 // UserDAO.create(roleAdmin); 98 // UserDAO.create(roleManager); 99 } 100 101 public void testInitDB() throws Exception { 102 User user = new User(); 103 user.setUsername("fred"); 104 user.setPassword("fred"); 105 HashSet roles = new HashSet(); 106 roles.add(createAdminRole(user)); 107 roles.add(createManagerRole(user)); 108 roles.add(createDeveloperRole(user)); 109 user.setRoles(roles); 110 twisterUser.createUser(user); 111 user = new User(); 112 user.setUsername("matt"); 113 user.setPassword("matt"); 114 roles = new HashSet(); 115 roles.add(createAdminRole(user)); 116 roles.add(createManagerRole(user)); 117 roles.add(createDeveloperRole(user)); 118 user.setRoles(roles); 119 twisterUser.createUser(user); 120 } 121 122 123 public void testCreateUserWithoutRole() throws Exception { 124 User user1 = new User(); 125 user1.setUsername("user1"); 126 user1.setPassword("password1"); 127 try { 128 twisterUser.createUser(user1); 129 fail("Should throw CreationException"); 130 } catch (CreationException e) { 131 } 132 } 133 134 public void testCreateUser() throws Exception { 135 User user1 = new User(); 136 user1.setUsername("user1"); 137 user1.setPassword("password1"); 138 HashSet roles = new HashSet(); 139 roles.add(createAdminRole(user1)); 140 roles.add(createDeveloperRole(user1)); 141 user1.setRoles(roles); 142 User createdUser = twisterUser.createUser(user1); 143 assertTrue("invalid username", createdUser.getUsername().equals("user1")); 144 assertTrue("invalid password", createdUser.getPassword().equals("password1")); 145 for (Iterator it = createdUser.getRoles().iterator(); it.hasNext();) { 146 Role role = (Role) it.next(); 147 System.out.println(role); 148 } 149 // assertTrue("should contains admin role", createdUser.getRoles().contains(new Role("admin"))); 150 // assertTrue("should contains developer role", createdUser.getRoles().contains(new Role("developer"))); 151 } 152 153 public void testCreateUserAlreadyExists() throws Exception { 154 User user1 = new User(); 155 user1.setUsername("user1"); 156 user1.setPassword("password1"); 157 HashSet roles = new HashSet(); 158 roles.add(createAdminRole(user1)); 159 user1.setRoles(roles); 160 twisterUser.createUser(user1); 161 try { 162 twisterUser.createUser(user1); 163 fail("Should throw CreationException"); 164 } catch (CreationException e) { 165 } 166 } 167 168 public void testFindUsersInRole() throws Exception { 169 User user1 = new User(); 170 user1.setUsername("user1"); 171 user1.setPassword("password1"); 172 HashSet roles = new HashSet(); 173 Role adminRole = createAdminRole(user1); 174 Role mgrRole = createManagerRole(user1); 175 roles.add(adminRole); 176 roles.add(mgrRole); 177 adminRole.setUser(user1); 178 mgrRole.setUser(user1); 179 user1.setRoles(roles); 180 twisterUser.createUser(user1); 181 182 User user2 = new User(); 183 user2.setUsername("user2"); 184 user2.setPassword("password2"); 185 HashSet roles2 = new HashSet(); 186 Role adminRole2 = createAdminRole(user2); 187 Role devRole2 = createDeveloperRole(user2); 188 roles2.add(adminRole2); 189 roles2.add(devRole2); 190 adminRole2.setUser(user2); 191 devRole2.setUser(user2); 192 user2.setRoles(roles2); 193 twisterUser.createUser(user2); 194 195 TransactionManager.commitTransaction(); 196 TransactionManager.beginTransaction(); 197 198 Collection usersInAdmin = twisterUser.findUsersInRole("admin"); 199 Collection usersInDeveloper = twisterUser.findUsersInRole("developer"); 200 Collection usersInManager = twisterUser.findUsersInRole("manager"); 201 202 assertTrue("Size of usersInAdmin collection should be 2", usersInAdmin.size() == 2); 203 assertTrue("Size of usersInDeveloper collection should be 1", usersInDeveloper.size() == 1); 204 assertTrue("Size of usersInManager collection should be 1", usersInManager.size() == 1); 205 206 207 } 208 }

This page was automatically generated by Maven